package com.github.itdachen.quartz.service;

import com.github.itdachen.quartz.entity.CronJobInfo;
import com.github.itdachen.quartz.entity.CronJobResp;

import java.util.List;

/**
 * 任务调度接口
 *
 * @author 剑鸣秋朔
 * @date 2025/11/21 21:43
 */
public interface IQuartzJobService {

    /***
     * 查询
     *
     * @author 剑鸣秋朔
     * @date 2025/11/21 21:52
     * @return java.util.List<com.github.itdachen.topic.quartz.entity.CronJobResp>
     */
    List<CronJobResp> query() throws Exception;

    /***
     * 手动执行
     *
     * @author 剑鸣秋朔
     * @date 2025/11/21 21:47
     * @param cronJobInfo cronJobInfo
     * @return void
     */
    void run(CronJobInfo cronJobInfo) throws Exception;

    /***
     * 新增任务
     *
     * @author 剑鸣秋朔
     * @date 2025/11/21 21:48
     * @param cronJobInfo cronJobInfo
     * @return void
     */
    void save(CronJobInfo cronJobInfo) throws Exception;


    /***
     * 重置、修改
     *
     * @author 剑鸣秋朔
     * @date 2025/11/21 21:50
     * @param cronJobInfo cronJobInfo
     * @return void
     */
    void reschedule(CronJobInfo cronJobInfo) throws Exception;

    /***
     * 暂停任务
     *
     * @author 剑鸣秋朔
     * @date 2025/11/21 21:49
     * @param cronJobInfo cronJobInfo
     * @return void
     */
    void pause(CronJobInfo cronJobInfo) throws Exception;

    /***
     * 重启任务
     *
     * @author 剑鸣秋朔
     * @date 2025/11/21 21:50
     * @param cronJobInfo cronJobInfo
     * @return void
     */
    void resume(CronJobInfo cronJobInfo) throws Exception;


    /***
     * 删除任务
     *
     * @author 剑鸣秋朔
     * @date 2025/11/21 21:51
     * @param cronJobInfo cronJobInfo
     * @return void
     */
    void delete(CronJobInfo cronJobInfo) throws Exception;




}
